package com.xz.knowledgeDuplication.juc.jmm;

import java.util.concurrent.TimeUnit;

/**
 * 可见性
 *
 * @author 召
 * @date 2022-11-08 21:49:18
 */
public class VolatileTest01 {

    /**
     * 不加 volatile 程序会死循环
     * 加 volatile 可以保证可见性
     */
    private volatile static int num = 0;

    public static void main(String[] args) throws InterruptedException {
        new Thread(() -> { // 线程1对住内存的变化不知道
            while (num == 0) {

            }
        }).start();
        TimeUnit.SECONDS.sleep(1);
        // 设置num=1后依然会线程依然会执行
        num = 1;
        System.out.println("num: " + num);
    }
}
